package com.hanamaki.basic.homewrk;

import sun.rmi.runtime.Log;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;

public class Demo05 {

    public static void main(String[] args) {

//        ysfj();

//        printDay();
//        calendarTest();

        printRe(12345);

    }


//      5．将一个正整数分解质因数。例如：输入90,打印出90=2*3*3*5。
//      质因数就是质因数就是一个数的约数，并且是质数，
//      比如8=2×2×2，2就是8的质因数。
//      12=2×2×3，2和3就是12的质因数。
//      把一个式子以12=2×2×3的形式表示，叫做分解质因数。

    public static void ysfj() {
        System.out.println("请输入一个正整数：");
        Scanner scanner = new Scanner(System.in);
//        num代表  90
        int num = scanner.nextInt();
//        定义一个最小的质数
        int k = 2;
        System.out.print(num + "=");
        while (k <= num) {
            if (num == k) {
                System.out.println(num);
                break;
            } else if (num % k == 0) {
                System.out.print(k + "*");
                num /= k;
            } else {
                k++;
            }
        }
    }

//    6．输入某年某月某日，判断这一天是这一年的第几天？
//    switch
//    日历类  工具类   Arrays
    public static void printDay() {
        Scanner scanner = new Scanner(System.in);
        int y, m, d;
        System.out.println("请输入年份");   // 2021
        y = scanner.nextInt();

        System.out.println("请输入月份");   // 6
        m = scanner.nextInt();

        System.out.println("请输入几号");    // 22
        d = scanner.nextInt();

//        定义一个天数的初始化变量
        int day = 0;
        for (int i = 1; i < m; i++) {
            switch (i) {
                case 2:
                    day += 28;
                    if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
                        day++;
                    }
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    day += 30;
                    break;
                default:
                    day += 31;
            }

        }

        day += d;

        System.out.println("今天是一年中的第" + day + "天");

    }

    //        获取 今天在一年中的第几天
    public static void calendarTest() {
        Scanner s = new Scanner(System.in);
        int y, m, d;
        System.out.println("请输入年份");   // 2021
        y = s.nextInt();
        System.out.println("请输入月份");   // 6
        m = s.nextInt();
        System.out.println("请输入几号");    // 22
        d = s.nextInt();
//        获取一个日历
        Calendar diy = Calendar.getInstance();
        // 设置 日期
        diy.set(y, 0, 1);
        long diyTimeInMillis = diy.getTimeInMillis();
        Calendar myDate = Calendar.getInstance();
        // 设置 日期
        myDate.set(y, m - 1, d);
        long timeInMillis = myDate.getTimeInMillis();
        double result = (timeInMillis - diyTimeInMillis) / 1000 / 60 / 60 / 24;
        System.out.println(result);



//        格式化时间戳
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd");
        String format = simpleDateFormat.format(diy.getTimeInMillis());
        System.out.println(format);

    }


//    7.输入一个数值，以反向的数值方式进行输出   12345

    public static void printRe(int num) {
        StringBuffer buffer = new StringBuffer();
        while (num != 0) {
            int right = num % 10;
            buffer.append(right);
            num /= 10;
        }
        System.out.println(buffer.toString());
        System.out.println(1 + 12345);
//        将 string类型的数字 转成 int
        int i = Integer.parseInt(buffer.toString());
        System.out.println(1 + i);
    }

}
